<template>
  <div id="container">地图加载中...</div>
</template>

<script setup lang="ts">
import { onMounted, onUnmounted, ref } from 'vue'
import AMapLoader from '@amap/amap-jsapi-loader'
import { healthMapGet } from '@/api/ParkHealth/index'
let markData = ref([])
// let getAmap = null
let map: any = null
const emit = defineEmits()

// watch(){}
onMounted(() => {
  healthMapGet().then((res) => {
    markData.value = res.data.results
  })

  AMapLoader.load({
    key: 'c5031f421ee4d9ce394448b6c79db21a', // 申请好的Web端开发者Key，首次调用 load 时必填
    version: '2.0', // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
    plugins: ['AMap.Geocoder'] // 需要使用的的插件列表，如比例尺`AMap.Scale'等
  })
    .then((AMap) => {
      map = new AMap.Map('container', {
        // 设置地图容器id
        viewMode: '3D', // 是否为3D地图模式
        zoom: 12, // 初始化地图级别
        center: [106.55, 29.57] // 初始化地图中心点位置
      })
      // getAmap = map
      markData.value.forEach((e) => {
        console.log('经纬度数据', e)
        //创建一个 Marker 实例：
        const marker = new AMap.Marker({
          position: new AMap.LngLat(e.lng, e.lat), //经纬度对象，也可以是经纬度构成的一维数组[116.39, 39.9]
          // position: new AMap.LngLat(106.615845,29.748845), //经纬度对象，也可以是经纬度构成的一维数组[116.39, 39.9]
          title: `${e.position}`
        })
        map.add(marker)

        // 信息窗体的内容
        var content = [
          // "<div><div style='color:red'>电话 : 010-84107000   邮编 : 100102</div></div>",
          `<div style='color:red'>设备名称：${e.name}</div>`,
          `<div style='color:red'>设备类型：${e.type}</div>`,
          `<div style='color:red'>设备位置：${e.position}</div>`,
          `<div style='color:red'>服务半径(km)：${e.radius}</div>`,
          `<div style='color:red'>设施状态：${e.status}</div>`
        ]

        // 创建 infoWindow 实例
        var infoWindow = new AMap.InfoWindow({
          content: content.join('<br>') //传入 dom 对象，或者 html 字符串
        })

        //创建点标记的点击事件
        marker.on('click', function (e: any) {
          // const { title } = e.target.getExtData();
          console.log(e)
          // 打开信息窗体
          infoWindow.open(map, e.target.getPosition())
        })

        //将创建的点标记添加到已有的地图实例：
      })
    })
    .catch((e) => {
      console.log(e)
    })
})

onUnmounted(() => {
  map?.destroy()
})
</script>

<style scoped>
#container {
  padding: 0px;
  margin: 0px;
  width: 100%;
  height: 100vh;
  border: 1px solid red;
}
</style>
